\subsection{Formato de los tests}
En esta secci'on se describe la forma de uso del programa desarrollado.
El programa recibe por par'ametro el nombre de archivo con la configuraci'on a 
ejecutar. Es decir, el archivo contiene los datos de entrada que determinan
los casos a correr.

Cada l'inea de este archivo debe contener 6 campos separados por espacios
que se interpretan de la siguiente manera:

\begin{enumerate}
\item El primer campo representa $a$, es decir el n'umero en el
	cual se evaluar'a la funci'on.
\item El segundo campo es la precisi'on con la que se trabajar'a (en bits).
	Debe ser un n'umero entre 1 y 52, inclusive.
\item El tercer campo determina la forma en la que se calcular'a la funci'on,
	es decir, el m'etodo desarrollado. Este campo puede tomar dos 
	valores: 0 'o 1. El valor 0 indica que se debe desarrollar $e^{x}$ e 
	invertir el resultado. El valor 1 indica que se debe desarrollar 
	$e^{-x}$ directamente.

\item
El cuarto campo determina el \emph{modo} en la que se evaluar'a el polinomio 
de Taylor obtenido. Este campo es un caracter que debe tomar uno de los 
valores B, F o H, con el siguiente significado:
\begin{itemize}
\item El modo B suma los monomios en orden decreciente de exponente.
\item El modo F suma los monomios en orden creciente de exponente.
\item El modo H eval'ua el polinomio utilizando la suma anidada.
\end{itemize}

\item El quinto campo determina cual es el m'inimo grado $n$ para
el cual se evaluar'a el polinomio de Taylor. Debe ser no negativo.

\item El sexto campo determina cual es el m'aximo grado $n$ para
el cual se evaluar'a el polinomio de Taylor. Debe ser no menor al campo 
anterior.

\end{enumerate}

Como se entiende del 5to y 6to campos, el programa no desarrolla la serie de
Taylor para una cantidad fija de t'erminos, sino que lo hace para el intervalo
dado por estos campos. La salida del programa por cada l'inea a procesar son
2 l'ineas: La primera es la configuraci'on utilizada para esa corrida y la
segunda el error relativo recuperado al calcular la funci'on para cada $n$ 
entre el m'inimo y m'aximo valor configurado, inclusive, separados por 
espacios.

Es importante notar que las l'ineas en blanco o que comienzan con \# son
ignoradas por el programa como comentarios.

\subsection{Scripts para la generaci\'on de casos de test}
En este apartado y el siguiente, se llamar'a a la implementaci'on de los 
algoritmos que se utilizaron para aproximar la funci'on $e^{-x}$ 
\emph{la Soluci'on}. Se cuenta con scripts tanto para generar casos de test, 
como para manipular la salida de la Soluci'on. A continuaci'on se enumeran
los scripts con una explicaci'on de su funcionamiento.

\begin{enumerate}
 \item \texttt{tests\_generator.py}: Basado en una lista de valores para $a$, 
 y una lista de precisiones $p$, genera archivos de test para cada una de las
 precisiones. Cada archivo lleva el nombre de $test\_P$ para cada valor 
 $P$ de $p$.
 \item \texttt{run.sh}: Ejecuta la Soluci'on con el archivo del par'ametro dado, y genera un
archivo $.out$ con la salida de la ejecuci'on.
 \item \texttt{data\_extractor.py}: Filtra los los resultados de una 
 	ejecuci'on de la Soluci'on. Para ver informaci'on sobre su modo de uso, 
 	ejecutarlo con par'ametro \texttt{-h}.
 \item \texttt{run\_data\_extractor.sh}: Ejecuta \texttt{data\_extractor.py}
 	sobre cada caso de test, y para cada valor de $a$ genera archivos
 	$test\_P.a\_A.csv$, para cada valor $A$ de $a$, y cada valor $P$ de $p$.
	Cada archivo generado tiene 7 columnas; una para cada combinaci'on 
	m'etodo/modo, y una para la cantidad de iteraciones (t'erminos).
 \item \texttt{plots.py}: A partir de los archivos $csv$ generados en la etapa
 anterior, genera archivos $.plot$ que sirven como entrada para 
 \texttt{gnuplot}.
 \item \texttt{run\_tests.sh}: Ejecuta cada uno de los tests, luego ejecuta 
 \texttt{run\_data\_extractor.sh} y por 'ultimo \texttt{plots.py}.
\end{enumerate}

\subsection{Par\'ametros de la Soluci\'on}
Los par'ametros de la Soluci'on son los siguientes:

\texttt{ex [-i $<$archivo\_entrada$>$] [-o $<$archivo\_salida$>$] [-v]}

\begin{itemize}
 \item El archivo de entrada por defecto es conf.txt.
 \item La salida por defecto es la salida est'andar.
 \item El par'ametro \texttt{-v} imprime informaci'on acerca de 
resultados parciales de la computaci'on.
\end{itemize}

